package com.von.platform.impl.hibernate.orm;

import org.hibernate.type.StandardBasicTypes;
import org.hibernate.type.Type;
import org.vnl.platform.orm.ORMTypes;


public enum HibernateTypes {

    STRING_CHAR(ORMTypes.STRING_CHAR, StandardBasicTypes.STRING),
    STRING_VARCHAR(ORMTypes.STRING_VARCHAR, StandardBasicTypes.STRING),
    BOOLEAN_CHAR(ORMTypes.BOOLEAN_CHAR, StandardBasicTypes.BOOLEAN),
    BOOLEAN_SMALLINT(ORMTypes.BOOLEAN_SMALLINT, StandardBasicTypes.BOOLEAN),
    INTEGER_SMALLINT(ORMTypes.INTEGER_SMALLINT, StandardBasicTypes.INTEGER),
    INTEGER_INTEGER(ORMTypes.INTEGER_INTEGER, StandardBasicTypes.INTEGER),
    INTEGER_NUMBER(ORMTypes.INTEGER_NUMBER, StandardBasicTypes.INTEGER),
    DOUBLE_FLOAT(ORMTypes.DOUBLE_FLOAT, StandardBasicTypes.DOUBLE),
    DOUBLE_DOUBLE(ORMTypes.DOUBLE_DOUBLE, StandardBasicTypes.DOUBLE),
    DOUBLE_NUMBER(ORMTypes.DOUBLE_NUMBER, StandardBasicTypes.DOUBLE),
    DOUBLE_DECIMAL(ORMTypes.DOUBLE_DECIMAL, StandardBasicTypes.DOUBLE),
    BIGINTEGER_INTEGER(ORMTypes.BIGINTEGER_INTEGER, StandardBasicTypes.BIG_INTEGER),
    BIGDECIMAL_FLOAT(ORMTypes.BIGDECIMAL_FLOAT, StandardBasicTypes.BIG_DECIMAL),
    BIGDECIMAL_DOUBLE(ORMTypes.BIGDECIMAL_DOUBLE, StandardBasicTypes.BIG_DECIMAL),
    BIGDECIMAL_NUMBER(ORMTypes.BIGDECIMAL_NUMBER, StandardBasicTypes.BIG_DECIMAL),
    BIGDECIMAL_DECIMAL(ORMTypes.BIGDECIMAL_DECIMAL, StandardBasicTypes.BIG_DECIMAL);

    private ORMTypes type;
    private Type hibernateType;
    
    private HibernateTypes(ORMTypes type, Type hibernateType) {
        this.type = type;
        this.setHibernateType(hibernateType);
    }

    public ORMTypes getType() {
        return type;
    }

    public void setType(ORMTypes type) {
        this.type = type;
    }

    public Type getHibernateType() {
        return hibernateType;
    }

    public void setHibernateType(Type hibernateType) {
        this.hibernateType = hibernateType;
    }
}
